\section{Randbedingungen}

\subsection{Technische Randbedingungen}
\begin{description}
    \item[Hardware-Infrastruktur:] Desktop-PC, Laptop
    \item[Software-Infrastruktur:] Marktübliches Privatnutzer Betriebssystem (Windows, Linux, MacOS), Derby-Datenbanksystem, lauffähig mithilfe eines \gls{EJB}-Containerfähigen Serversystems
    \item[Systembetrieb:] Onlinebetrieb des Systems
    \item[Verfügbarkeit der Laufzeitumgebung:] Bisher nur Desktopbetrieb und damit gelegentliches Online-Sein
    \item[Grafische Oberfläche:] Einheitliches Webinterface
    \item[Bibliotheken, Frameworks und Komponenten:] Komponentenbasierte Architektur, \gls{EJB} aufgebaut auf einem \gls{Glassfish}-Serversystem, \gls{JSP}, \gls{jQuery}
    \item[Programmiersprachen:] \gls{Java}, \gls{XHTML}, \gls{JavaScript}, \gls{CSS}
    \item[Referenzarchitekturen:] Model-View-Controller-Architektur
    \item[Analyse- und Entwurfsmethoden:] Objektorientierte Methoden, etwas \gls{Scrum}
    \item[Datenstrukturen:] \glspl{POJO} wegen \gls{JPA}
    \item[Programmierschnittstellen:] JSP's zum Webfrontend
    \item[Programmiervorgaben:] Einheitlicher Code, View in JSP's, Controller in Beans, Model in Entities
    \item[Technische Kommunikation:] Blockierende Kommunikation
    \item[Betriebssystem und Middleware:] Windows und Linux(Ubuntu)
\end{description}


\subsection{Organisatorische Randbedingungen}

\subsubsection{Organisation und Struktur}
\begin{description}
	\item[Organisationsstruktur des Projektteams:] Eigenverantwortlichkeit mit gegenseitiger, regelmäßiger Absprache
	\item[Entscheidungsträger:] jeder
	\item[Externe Vergabe:] Kein \gls{Outsourcing}, nur Eigenentwicklung
	\item[Zielnutzung:] Produkt, jedoch nur zu Lernzwecken entwickelt
\end{description}

\subsubsection{Ressourcen}
\begin{description}
	\item[Preiskalkulation:] Nicht vorhanden, entgeltlos - Bezahlung erfolgt durch Wissen
	\item[Zeitplan:] Fester Termin, jede Woche Meilensteine
	\item[Release-Plan:] Jede Woche \gls{Meilensteine} mit erwarteter/geplanter Funktionalität
	\item[Budget:] Nicht vorhanden
	\item[Budget für technische Ressourcen:] Nicht vorhanden
	\item[Team:] zeitlich geringe Verfügbarkeit
\end{description}

\subsubsection{Organisatorische Standards}
\begin{description}
	\item[Vorgehensmodell:] Informelle Absprachen, Diskussionen und Planungsmeetings
	\item[Enwicklungswerkzeuge:] Unter Ubuntu-VM Netbeans mit integriertem EJB-Container \emph{Glassfish-Server}, Subversionsystem \gls{SVN} und \gls{Derby}-Datenbank
\end{description}

\subsubsection{Juristische Faktoren}
Speicherung von personenbezogenen Daten, im konkreten Fall der Name.

\subsection{Konventionen}
Als Codeconvention dienen die Standard Java-Code-Conventions von Oracle. Quellcode selbst soll nur in extremen Fällen kommentiert werden, jedoch Fragen an den Coder selbst oder Anmerkungen (z. B. \emph{todo}, \emph{Fixme}, \emph{Bug}, etc.) können als Kommentar eingefügt werden.
